Bug Fixes for 2.3 (7/23/93) --------------------------- * This version was the first one posted to the archives. * Fixed bug that caused preferences panel "reset defaults" to dump. New Features for 2.2 (6/23/93) ------------------------------ * Added alert panel confirmation for client deletion. * A backup file is now created before writing changes to the data. (The file is called client.data~) * After an add/modify/undelete the edited cell is selected * After deleting sessions/expenses, the first item is selected * Two new command keys: Cmd-+ executes the "Add" feature, and Cmd-m executes the "Modify" button. These allow clients to be edited without using the mouse. BUG FIXES --------- * After add/modify of sessions or expenses main window became key. * If you resized the inspector with the Client Data view selected, things got wierd. * When the client view was first selected it sometimes didn't show the data for the currently highlighted item. * Fixed the appearance of a rounding error. Actually, the computation was correct; the number of hours being displayed to 2 decimal places was the incorrect value! The calculation now uses the some rounded value that is displayed, so it looks like there is no discrepency. New Features for 2.1 (6/15/93) ------------------------------ * The inspector view for sessions can also be invoked with Cmd-1, the expenses with Cmd-2 and the Client info with Cmd-3. (Cmd-1 was previously assigned to start/stop the stopwatch. This has been reassigned to the key Cmd-$ for obvious reasons. * The menu item that brought up the inspector in it's current state (Cmd-i) has been removed, since the Cmd-{1,2,3} items give more immediate control. BUG FIXES --------- * Session compaction was assigning the latest time to a group of compacted sessions, due to the newly inverted ordering of sessions. This has been restored to work the old way, i.e. the compacted session takes the time of the earliest session. * Fixed a minor bug in which it was possible to "Add" sessions or expenses when no client was selected, which was a no-op, but possibly annoying. New Features for 2.0 (5/31/93) ------------------------------ * There is a new combined Client/Session/Expense inspector which replaces the previous separate Client Editor and Client Browser panels. * The inspector can be invoked by either Cmd-i or by double clicking on an entry in the main window's browser. The browser initially displays data for the client currently selected in the main window. * The inspector now sports a columnized display of session and expense info. The sessions and expenses are now sorted in reverse chronological order for display. * Session editor and expense editor now require dates in mm/dd/yy format, and time in hh:mm. This is to provide a consistently parsable format for sorting by time and date. * When entering sessions using the session editor, the session duration can now be given in any of three formats: "hh:mm" (1:45 means 1 hour and 45 minutes), or "h.d" (1.5 means one and one half hours), or an un-punctuated number "m" (22 means 22 minutes.) * Expense totals (for client and across all clients) are displayed in the inspector's expense view. * When manually adding a new item, the Expense and Session editors are initialize to show the current date and time. * Selection of multiple session or expenses is now allowed, and the "Select All" menu item does the right thing. (The only operation allowed on multiple selections of sessions or expenses is deletion.) * Clients, sessions and expenses can be undeleted. Each deletion is saved on a list particular to that type of object. Undeleting pops the last item from the list. * The import/export delimiter has been changed to a tab '\t' and it's definition has been centralized in Controller.h, in case you want to change it. If the need is there, this can become a preference item. This was requested to allow the data to be used directly in some spreadsheet products. * Generated files now have the "most likely" current month added to their names for convenient reference. The heuristic for "most likely" is: the prior month if the current day is < 20, otherwise the current month. This assumes you generate your invoice for each month between the 20th of that month and the 20th of the next month. * The manual has been updated to reflect these (most of) changes, and has been transformed into a 3.0 Help document. Use Info->Help. * Major code restructuring and cleanup. Bug Fixes --------- * If you deleted all and don't make any changes, file was never written! New Features for 1.7 -------------------- * Windows remember their size and placement * Stop/Start menu item (Cmd-1) * Menu items to load templates into Edit * Fixed a bug which caused the the templates from the app wrapper to be used even though it copied the templates to the ~/Library/Stopwatch/Templates directory! They were never subsequently used. (Oops!) * a "HideOnAutoLaunch" preference item * Wider text fields in Session browser to display current totals. Thankfully, this was required. New Features for 1.6 --------------------- * A manual! See Manual.rtfd. * Copying of templates files now implemented directly rather than exec'ing /bin/cp. * Fixed the main menu's "New Client" button, which got disconnected somehow. * The addition and deletion of clients is now reflected in the client browser and the main window. * Translation of tokens now implemented directly instead of requiring perl. * Token format changed to square-bracketed strings for easier parsing. See Manual.rtfd for all available keywords. New Features for 1.51 --------------------- * Added new keywords #rate and #hours for use in the invoice template. * Changed "File->Export" to use the client's short name rather than the full name. * Removed support for importing archaic log format. * Fixed bug where if you double clicked in the Client Editor's browser you would crash the app. * Removed random .tiff artifacts from the directory. New Features for 1.5 -------------------- * Added a preferences panel with two data items: the directory in which to generate invoice files, and the next invoice number to use. These values are stored in the defaults database with the following defaults: Stopwatch InvoiceNum 0 Stopwatch InvoiceDir /tmp * The invoice number read from the defaults db is incremented by the invoice generation process, and the db is updated as well. This number is also now incorporated into the generated filenames so that each invoice file is unique. (Earlier you had to rename them to keep them around since the names were the same each month for the same client.) * Added expense report generation. * Invoices, invoice detail, and expense reports are now RTF-based. They use template files which contain certain key words (prefixed by '#') which are replaced with values from the client data. If the template files are not found in ~/Library/Stopwatch/Templates, they are copied there from the app wrapper. Storing them externally to the app protects user mods from app updates. Modify these files to customize your reports. * Also note, the RTF file generation is based on perl scripts included in the app wrapper. YOU NEED PERL TO USE THIS FEATURE! (see *.perl) Also note that these scripts are hardwired to expect perl in /usr/local/bin/perl. This can be changed but I didn't bother... * Expense reports are based on "ExpensesTemplate.rtf". Invoice detail uses the template file "DetailTemplate.rtf". The main invoice uses "InvoiceTemplate.rtf". All available keywords are used in the example templates, but you don't have to use them all in your customized versions. * Changed "Sessions->Delete All" command to also delete all expenses records for all clients. New Features for 1.42 --------------------- * Changed font to bold when running so you can see if the clock is ticking * Added powerOf:in:andSave: so you don't loose your work of you logout or power off. New Features for 1.4 -------------------- * Reshaped Main Window, changed resizing behavior. The client list can be reduced to nothing. (done earlier but never logged) * New Icon * Added AppIconView class for displaying time in the application icon. * made changes to Controller to make this happen. --hjk New Features for 1.3 -------------------- * Further reduced the size of the main window, and eliminated the unsightly radio buttons within the scroller. Reduced the size of the text on labels and text fields as well. * Prior versions had a bug in which, if a session is active and you clicked on another client in the main window, the new session got credited to the newly clicked client, rather than the original one! This has been fixed. * Added ExpenseEditor support so expenses for a client can be entered and edited. Still must add support for detail reporting on these expenses... New Features for 1.2 -------------------- * Client panel now supports a 'short name' for each client. This serves two purposes: - the main window has been made somewhat smaller - the generated file have much more managable names, e.g. nacm_dtl.framemif * The program recognizes old version archives (version == 0) and initializes the short name field to the full client name. You should run the new version and edit all short names as desired. This will cause a version 1 file to be written containing the short name. * Invoice files are no longer generated for clients for whom no work was performed. * A couple of diagnostic messages which were printed during invoice generation have been deleted from the code. New Features for 1.1 -------------------- * Two new menu items were added: "File/Save As..." and "Delete All Sessions...". The "Save As..." was added to allow the easy creation of an archive of the current month's data, in preparation for using the "Delete All Sessions..." feature. This clears out all session information and resets all time and billing variables to 0, allowing a new month to be started fresh. (Ultimately, the tool should sit on a database such as dbVista, allowing much more extensive reporting and archiving capabilities...) * Two new output fields were added to the Session Browser, showing the dollar amount billable for the selected client as well as the total for the month across all clients. New Features for 1.0 -------------------- * Client descriptions and work session data stored in a single typestream which is manipulated by a series of data entry panels and browsers. * Generates frame maker invoice detail documents automatically. (For now, these get deposited in the ~/Library/Stopwatch directory, just because it was easy.) * The main window looks much as it did before. Instead of writing lines of text to an ascii file, it adds elements to a data structure which is automatically written to a typestream file whenever there are changes. * Task description string defaults to the last string entered for each individual client. (This works well with the "Compact" command described below.) * Client Setup allows client data to be entered. Some of this is used to generate the invoice detail document. (This feature is still under construction but is already worth using. Some touch up is required on the generated document however, such as invoice #.) * Session Browser allows manual entry and modification of individual sessions. Also shows total hours across all clients, and subtotals for individual clients, which are all updated upon each new entry or edit. Entries created via the main window start/stop controls are added to the browser automatically. * Primitive import/export facility to handle ascii files (see more below) This can also be useful if you don't want to generate frame maker files.